package lanqiao.demo;

import java.math.BigInteger;    
import java.util.Scanner;

/**
 * 给定 N 个加号、M 个减号以及 N + M + 1 个整数 A1,A2,··· ,AN+M+1，小 明想知道在所有由这
 * N个加号、M 个减号以及 N + M +1
 * 个整数凑出的合法的 后缀表达式中，结果最大的是哪一个？
 * 请你输出这个最大的结果。 例如使用1 2 3 + -，则 “2 3 + 1 -”
 * 这个后缀表达式结果是 4，是最大的。
 * <p>
 * <p>
 * 解析：
 * 后缀表达式与前缀表达式在计算过程中是可以存在括号“（）”，
 * 此值即为所有数值之和减去最小数值的两倍
 */

public class Test7 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //加号个数
        int m = scanner.nextInt();
        //减号个数
        int n = scanner.nextInt();

        //定义最小值
        BigInteger min = BigInteger.valueOf(Integer.MAX_VALUE);
        BigInteger sum = BigInteger.ZERO;
        for (int i = 0; i < m + n + 1; i++) {
            //输入的数字
            BigInteger temp = new BigInteger(scanner.next());
            sum = sum.add(temp);  //加法
            if (min.compareTo(temp) > 0) {  //说明min大于temp，需要更新最小值
                min = temp;
            }
        }
        //总和减去最小值的二倍
        System.out.println(sum.subtract(min.multiply(new BigInteger("2"))));
    }
}
